package cn.iocoder.yudao.module.instrument.dal.dataobject.instrument;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 仪器设备管理表 DO
 *
 * @author wwwhk
 */
@TableName("sys_instrument")
@KeySequence("sys_instrument_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InstrumentDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 仪器名称
     */
    private String insName;
    /**
     * 所属部门
     *
     * 枚举 {@link TODO dept 对应的类}
     */
    private Long deptId;
    /**
     * 型号规格
     */
    private String model;
    /**
     * 主要技术指标
     */
    private String techIndex;
    /**
     * 存放位置
     */
    private String storageLocation;
    /**
     * 检定有效期
     */
    private Integer verificationValidity;
    /**
     * 使用状态
     *
     * 枚举 {@link TODO use_status 对应的类}
     */
    private Integer useStatus;
    /**
     * 附件
     */
    private String attachmentUrl;
    /**
     * 仪器状态（0-正常，1-维修保养）
     */
    private Integer instrumentStatus;
    /**
     * 最后操作日志ID（关联sys_operation_log.id）
     */
    private Long lastOperationId;
    /**
     * 出库审批状态（0-待审批，1-审批通过，2-审批拒绝，3-已撤销）
     */
    private Integer outboundApprovalStatus;
    /**
     * 出库审批人ID（关联sys_user.id）
     */
    private Long outboundApproverId;
    /**
     * 出库审批时间
     */
    private LocalDateTime outboundApprovalTime;
    /**
     * 出库审批意见（如“同意出库用于压力测试”）
     */
    private String outboundApprovalOpinion;
    /**
     * 备注
     */
    private String remark;


}